{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "53f2738c",
   "metadata": {},
   "outputs": [],
   "source": [
    "def bezier(t, P0, P1, P2, P3):\n",
    "    A = (P1 - P0) * t + P0\n",
    "    B = (P2 - P1) * t + P1\n",
    "    C = (P3 - P2) * t + P2\n",
    "    D = (B - A) * t + A\n",
    "    E = (C - B) * t + B\n",
    "    P = (E - D) * t + D\n",
    "    \n",
    "    return P"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "ab82a25e",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "id": "2a4994fe",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ -6, -18])"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t = 2\n",
    "P0 = np.array([0, 0])\n",
    "P1 = np.array([1, 1])\n",
    "P2 = np.array([3, 2])\n",
    "P3 = np.array([3, 0])\n",
    "\n",
    "bezier(t, P0, P1, P2, P3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "id": "e7fd60b4",
   "metadata": {},
   "outputs": [],
   "source": [
    "def route(P0, P1, P2, P3):\n",
    "    n = 101\n",
    "    arrP = np.zeros((n,2))\n",
    "    tList = np.linspace(0, 1, n)\n",
    "    index = 0\n",
    "    for t in tList:\n",
    "        arrP[index, :] = bezier(t, P0, P1, P2, P3)\n",
    "        index += 1\n",
    "    return arrP\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "id": "4d6ec2f0",
   "metadata": {},
   "outputs": [],
   "source": [
    "arrP = route(P0, P1, P2, P3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "id": "0c377a37",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1e1a476fa60>]"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(arrP[:, 0], arrP[:, 1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "id": "f592fe26",
   "metadata": {},
   "outputs": [],
   "source": [
    "P0 = np.array([0, 0])\n",
    "P1 = np.array([1, -1])\n",
    "P2 = np.array([3, -1])\n",
    "P3 = np.array([3, 0])\n",
    "arrP1 = route(P0, P1, P2, P3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "d745e4f7",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1e1a31daac0>,\n",
       " <matplotlib.lines.Line2D at 0x1e1a31daaf0>]"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(arrP[:, 0], arrP[:, 1],arrP1[:, 0], arrP1[:, 1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "id": "38177b68",
   "metadata": {},
   "outputs": [],
   "source": [
    "P0 = np.array([0, 0])\n",
    "P1 = np.array([-1, 1])\n",
    "P2 = np.array([-3, 2])\n",
    "P3 = np.array([-3, 0])\n",
    "arrP2 = route(P0, P1, P2, P3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "id": "10ff78ae",
   "metadata": {},
   "outputs": [],
   "source": [
    "P0 = np.array([0, 0])\n",
    "P1 = np.array([- 1, -1])\n",
    "P2 = np.array([- 3, -1])\n",
    "P3 = np.array([- 3, 0])\n",
    "arrP3 = route(P0, P1, P2, P3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "id": "a66f4489",
   "metadata": {},
   "outputs": [],
   "source": [
    "P0 = np.array([0, 3])\n",
    "P1 = np.array([1, 1])\n",
    "P2 = np.array([2, 1])\n",
    "P3 = np.array([3, 3])\n",
    "arrP4 = route(P0, P1, P2, P3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "id": "44a8bf70",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1e1a4b09700>]"
      ]
     },
     "execution_count": 96,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(arrP[:, 0] + 4, arrP[:, 1],arrP1[:, 0] + 4, arrP1[:, 1],arrP2[:, 0], arrP2[:, 1],arrP3[:, 0], arrP3[:, 1])\n",
    "plt.plot(arrP4[:, 0] + 0.75, arrP4[:, 1] - 4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "453e8566",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
